﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Aima.Core.Environment.Map
{
    /// <summary>
    /// The AIMA framework uses dynamic attributes to make implementations of agents
    /// and environments completely independent of each other. The disadvantage of
    /// this concept is, that it's error-prone. This set of constants is designed to
    /// make information exchange more reliable for map agents. Two kinds of
    /// attributes are distinguished. Percept attributes are attached to percepts.
    /// They are generated by the environment and read by by the agent.
    /// EnvironmentState attributes are attached to the EnvironmentState of the
    /// Environment.
    /// </summary>
    public class DynAttributeNames {

        /// <summary>
        /// Name of a dynamic attribute, which contains the current location of the
        /// agent. Expected value type: String.
        /// </summary>
        public static readonly string AgentLocation = "location";

        /// <summary>
        /// Name of a dynamic attribute, which tells the agent where it is. Expected
        /// value type: String.
        /// </summary>
        public static readonly string PerceptIn = "in";
    }
}
